<?php
	defined('RUN') or die('No access');

	class Product_categoryController
	{
		public function __construct()
		{
			if (!Auth::check('acp'))
			{
				Url::redirect('admin/auth/login');
			}
		}
		
		public function index()
		{
			$data = Model::get('admin')->getLayoutData();
			$data['categories'] = Model::get('product_category')->getCategoriesAll();
			if (Session::getFlash('notification'))
			{
				$data['notification']=Session::getFlash('notification');
			}
			$data['content_file'] = 'product_category/view.tpl';
			View::load('layout.tpl', $data, 'admin');
		}

		public function add()
		{
			$data = Model::get('admin')->getLayoutData();

			if (Input::post('action') == 'add' && Security::checkToken('token_form', Input::post('token')))
			{
				if (Validator::checkRequired(Input::post(), array('txtName')))
				{
					$data = array(
						'name' 			=> strip_tags(Input::post('txtName')),
						'parent_id'    	=> Input::post('slcCategory'),
						'keywords' 		=> strip_tags(Input::post('txtKeys')),
						'description' 	=> strip_tags(Input::post('txtDesc')),
						'sort' 			=> (int)(Input::post('txtSort')),
						'status'    	=> Input::post('slcStatus'),
						'updated'    	=> date('Y-m-d h:m:s')							
					);
					
					if (Model::get('product_category')->add($data))
					{
						Session::setFlash('notification', array('type' => 'green', 'msg' => 'Thêm thành công !'));
						Url::redirect('admin/product_category');
					}else{
						Session::setFlash('notification', array('type' => 'red', 'msg' => 'Thêm không thành công !'));
						Url::redirect('admin/product_category');
					}
				}

				$data['failed'] = TRUE;
			}
            $data['categories'] = Model::get('product_category')->getCategoriesAll();
			$data['parent_id'] = 0;            
			$data['action'] = 'add';
			$data['content_file'] = 'product_category/form.tpl';
			View::load('layout.tpl', $data, 'admin');
		}
        
        public function update($id)
		{
			$data = Model::get('admin')->getLayoutData();
            $data['category'] = Model::get('product_category')->getById($id);

			if (Input::post('action') == 'update' && Security::checkToken('token_form', Input::post('token')))
			{
				if (Validator::checkRequired(Input::post(), array('txtName')))
				{
					$data = array(
						'name' 			=> strip_tags(Input::post('txtName')),
						'parent_id'    	=> Input::post('slcCategory'),
						'keywords' 		=> strip_tags(Input::post('txtKeys')),
						'description' 	=> strip_tags(Input::post('txtDesc')),
						'sort' 			=> (int)(Input::post('txtSort')),
						'status'    	=> Input::post('slcStatus'),
						'updated'    	=> date('Y-m-d h:m:s')							
					);
					
					if (Model::get('product_category')->update($data, $id))
					{
						Session::setFlash('notification', array('type' => 'green', 'msg' => 'Chỉnh sửa thành công !'));
						Url::redirect('admin/product_category');
					}else{
						Session::setFlash('notification', array('type' => 'red', 'msg' => 'Chỉnh sửa thành công !'));
						Url::redirect('admin/product_category');
					}
				}

				$data['failed'] = TRUE;
			}
            $categories = Model::get('product_category')->getCategoriesAll();
    		if (!empty($category_id)) {
    			foreach ($categories as $key => $category) {
    				if ($category['id'] == $category_id) {
    					unset($categories[$key]);
    				}
    			}
    		}
            $data['categories'] = $categories;
			$data['action'] = 'update';
			$data['content_file'] = 'product_category/form.tpl';
			View::load('layout.tpl', $data, 'admin');
		}                

		public function delete($id, $confirm = 'no')
		{
			$data = Model::get('admin')->getLayoutData();

			if ($confirm == 'yes')
			{     
                if (Model::get('product_category')->delete($id))
				{
					Session::setFlash('notification', array('type' => 'green', 'msg' => 'Xoá thành công !'));
					Url::redirect('admin/product_category');
				}
			}

			$data['category'] = Model::get('product_category')->getById($id);
			$data['content_file'] = 'product_category/delete.tpl';
			View::load('layout.tpl', $data, 'admin');
		}
	}

